A. Technical Field
The present invention relates generally to the field of data storage, and more particularly, to load balancing of storage devices.
B. Background of the Invention
Computer systems often include some form of data storage system to record and access data. Storage systems typically employ a disk drive on which data is stored and from which data may be retrieved.
Because disk failures are not uncommon and because loss of data can have catastrophic results, some computer systems employ an array of disk drives. A common implementation of arrays of disk drives is known as “RAID,” which stands for “Redundant Array of Independent Disks” or “Redundant Array of Inexpensive Disks.” The various RAID configurations are different ways for redundantly storing data on multiple disk drives. RAID systems can provide improved performance, improved fault tolerance for disk failures, or both.
A number of RAID techniques or configurations exist, but examples of different RAID configurations include RAID-0, RAID-1, and RAID-5. The RAID-0 technique employs striping, in which the data is segmented into blocks and each block is written to a separate disk drive. RAID-0 offers good performance because data can be written to or read from multiple drives, but it is not fault tolerance because there is no redundancy of data.
The RAID-1 technique uses disk mirroring and duplexing. It consists of at least two drives that duplicate the stored data. RAID-1 does not employ striping. The RAID-1 technique improves performance because either disk can be read at the same time.
The RAID-5 configuration, one of the most commonly used RAID techniques, uses block-level striping with a parity array distributed across the disks. The parity data, although not strictly redundant data, can be used to reconstruct data. RAID-5 improves performance because all read and write operations may be overlapped.
RAID arrays may also be nested. An example of a nested RAID array is RAID 10, which consists of an array of stripes in which each stripe is a RAID-1 array of drives.
Although disk drive technologies continue to evolve and develop greater capacity, load balancing for storage systems, such as RAID systems, has not substantially evolved. Accordingly, what is needed are systems and methods for providing better load balancing for data storage systems comprising on array of disk drives.